package 面向对象高级.代码块;

import java.util.Date;

public abstract class StaticPerson {
    static String name;
    int age;

    public StaticPerson() {
        System.out.println("我是一个无参的构造函数");
    }

    public abstract void a();

    //非静态代码块
    {
        age=23;
        System.out.println("年龄为"+age);
        System.out.println("我是非静态代码块");
        //在非静态代码块中访问静态代码块
        System.out.println(name);
        a();
    }

    //声明一个代码块
    static {
        System.out.println("我是一个静态代码块1");
        //给属性来进行初始化，前提就是全部变量是用static修饰的
        name="张三";
    }

    static {
        System.out.println("我是一个静态代码块2");
    }
}

class StaticPersonTest {
    public static void main(String[] args) {
        new StaticPerson() {
            @Override
            public void a() {

            }
        };
        Date date = new Date();
        System.out.println(date);
        long time=System.currentTimeMillis();
        System.out.println(time);
    }
}